Expand description
Prodash is a dashboard for displaying the progress of concurrent application.
It consists of two parts
- a
Tree
to gather progress information and messages - a terminal user interface which displays this information, along with optional free-form information provided by the application itself
Even though the Tree
is not async, it’s meant to be transparent and non-blocking performance wise, and benchmarks seem to indicate this
is indeed the case.
The terminal user interface seems to be the least transparent part, but can be configured to refresh less frequently.
Terminal User Interface
By default, a TUI is provided to visualize all state. Have a look at the example provided in the tui module.
Please note that it is behind the render-tui
feature toggle, which is enabled by default.
Logging
If the feature progress-tree-log
is enabled (default), most calls to progress
will also be logged.
That way, even without a terminal user interface, there will be progress messages.
Please note that logging to stdout should not be performed with this feature enabled and a terminal user interface is shown, as this will
seriously interfere with the TUI.
A demo application
Please have a look at the dashboard demo.
Run it with cargo run --example dashboard
and see what else it can do by checking out cargo run --example dashboard -- --help
.
Modules
Macros
- Logs a message at the info level.
- Logs a message at the warn level.
Structs
- An opaque type for storing
DynNestedProgress
. - A bridge type that implements
NestedProgress
for any type that implementsDynNestedProgress
. - A utility to compute throughput of a set of progress values usually available to a renderer.
- A configurable and flexible unit for use in Progress::init().
Traits
- A thread-safe read-only counter, with unknown limits.
- An object-safe trait for describing hierarchical progress.
- A trait for describing hierarchical progress.
- A trait for describing non-hierarchical progress.
- The top level of a progress task hierarchy, with
progress::Task
s identified withprogress::Key
s - The top-level root as weak handle, which needs an upgrade to become a usable root.
Type Aliases
- An owned version of
Progress
which can itself implement said trait.